package com.ymx.darling.expression;

import java.util.LinkedList;

/**
 * 表达式执行的工具类
 * @author 爱Java的小于
 */
public class Expression {
    /**
     * 执行逻辑表达式
     * @return boolean
     */
    public static boolean evalLogic(String expression, Object context) {
        return new LogicExpressionEvaluator(context).eval(expression);
    }

    /**
     * 执行访问表达式
     * @return Object
     */
    public static Object evalAccess(String expression, Object context) {
        return new ExpressionAccess(context).getValue(expression);
    }

    /**
     * 将表达式解析为链表
     * @param expression 表达式
     * @return LinkedList
     */
    public static LinkedList<String> parseExpression(String expression) {
        return ExpressionAccess.parseExpress(expression);
    }
}
